package com.haibo.entity.dto;

import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.*;
import lombok.experimental.Accessors;

import javax.validation.constraints.NotBlank;
import java.io.Serializable;
import java.util.List;

/**
 * @Author : 刘海波
 * @Date: 2025-09-22 8:06
 * @Description: 病历质控-主表
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ToString(callSuper = true)
@EqualsAndHashCode(callSuper = false)
public class MedicalRecordGenerationDTO implements Serializable {

    /**
     * 患者ID
     */
    @JsonProperty(value = "patient_id")
    @NotBlank(message = "患者ID不允许为空!")
    private String patientId;

    /**
     * 医生姓名
     */
    @JsonProperty(value = "doctor_name")
    private String doctorName;

    /**
     * 医生编号
     */
    @JsonProperty(value = "doctor_code")
    @NotBlank(message = "医生编号不允许为空!")
    private String doctorCode;

    /**
     * 就诊ID
     */
    @JsonProperty(value = "visit_id")
    @NotBlank(message = "就诊ID不允许为空!")
    private String visitId;

    /**
     * 科室code
     */
    @JsonProperty(value = "department_code")
    private String departmentCode;

    /**
     * 科室名称
     */
    @JsonProperty(value = "department_name")
    private String departmentName;

    /**
     * 病历类型
     * 1：门诊、2：首程、3：入院记录、5：手术记录、7：出院记录、21：疾病证明书
     */
    @JsonProperty(value = "medical_category")
    private Integer medicalCategory;

    /**
     * 是否已采集。0：未采集、1：已采集，EMR系统回写时使用
     */
    @JsonProperty(value = "collect_status")
    private Integer collectStatus;

    /**
     * 病历内容列表
     */
    @JsonProperty(value = "content_list")
    private List<MedicalRecordGenerationItemDTO> contentList;

}
